Tree-sitter support for outline-minor-mode (bug#68824)
authorJuri Linkov <juri@linkov.net>
Mon, 12 Feb 2024 18:16:35 +0000 (20:16 +0200)
committerJuri Linkov <juri@linkov.net>
Mon, 12 Feb 2024 18:18:24 +0000 (20:18 +0200)
commit3b90e5052ce1eea47430c85c0c35741e25269ce2
tree1c7673381cb2b67b847f96d2d07053cc93de4a95
parent39cce137ba83713c960c201d8c3d8cf5079eee3b
Tree-sitter support for outline-minor-mode (bug#68824)

* doc/emacs/text.texi (Outline Format): Add 'outline-search-function'.

* doc/lispref/elisp.texi (Top): Add new menu item "Outline Minor Mode"
after "Imenu".

* doc/lispref/modes.texi (Modes): Add new menu item "Outline Minor Mode"
after "Imenu".
(Major Mode Conventions): Mention "Outline Minor Mode" with @pxref.
(Outline Minor Mode): New node.

* doc/lispref/parsing.texi (Tree-sitter Major Modes): Mention
'treesit-outline-predicate' with @pxref.

* lisp/treesit.el (treesit-outline-predicate): New buffer-local variable.
(treesit-outline-predicate--from-imenu): New internal function.
(treesit-outline-search, treesit-outline-level): New functions.
(treesit-major-mode-setup): Set up treesit-outline-predicate,
outline-search-function and outline-level.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--outline-predicate):
New internal function.
(c-ts-base-mode): Set 'treesit-outline-predicate' to
'c-ts-mode--outline-predicate'.

* lisp/progmodes/heex-ts-mode.el (heex-ts-mode): Kill inherited
local variables 'outline-heading-end-regexp', 'outline-regexp',
'outline-level'.

* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Remove 'outline-regexp'.
Suggested by john muhl <jm@pub.pink>.

* lisp/textmodes/html-ts-mode.el (html-ts-mode): Kill inherited
local variables 'outline-heading-end-regexp', 'outline-regexp',
'outline-level'.
doc/emacs/text.texi
doc/lispref/elisp.texi
doc/lispref/modes.texi
doc/lispref/parsing.texi
etc/NEWS
lisp/progmodes/c-ts-mode.el
lisp/progmodes/heex-ts-mode.el
lisp/progmodes/lua-ts-mode.el
lisp/textmodes/html-ts-mode.el
lisp/treesit.el